# -*- coding: utf-8 -*-
# @Time    : 2023/7/7 20:41
# @Author  : Hami

"""
 发送请求、提取数据
 发送请求：post、get、put、delete...
 类的形式去展示
"""
import json
import requests
import jsonpath
import allure


class ApiKey:
    """
    工具类，实现对应的一些关键字驱动操作 -- 基类
    """
    @allure.step(">>>>>>发送get请求")
    def get(self, url, params=None, **kwargs):
        """
         这是get请求
        :param url:
        :param params:
        :param kwargs:
        :return:
        """
        # 返回的是一个对象，比如获取响应头、响应体...
        return requests.get(url=url, params=params, **kwargs)

    @allure.step(">>>>>>发送post请求")
    def post(self, url, data=None, json=None, **kwargs):
        """
        这是post请求
        :param url:
        :param data:
        :param json:
        :param kwargs:
        :return:
        """
        return requests.post(url=url, data=data, json=json, **kwargs)

    @allure.step(">>>>>>获取响应数据")
    def get_text(self, response, key):
        # 这对于哪个数据进行提取

        # 如果是字符串，我就把你转成json格式
        if isinstance(response, str):
            response = json.loads(response)

        value_list = jsonpath.jsonpath(response, key)
        return value_list[0]
